package store.algorithm;

import store.Item;

public abstract class AbstarctItemChangeValueAlgorithm {

    protected static  final int MIN_VALUE=0;

    protected static  final int MAX_VALUE=50;

    protected static final int SELL_IN_STEP=1;

    /**
     * 价值
     */
    protected static final int VALUE_STEP=1;

    /**
     * 值变化方法
     * @param item
     */
    public void doChangeCurrent(Item item){
        changeCurrent(item);
        checkValue(item);
    }

    /**
     * 校验商品值的范围
     * @param item
     */
    protected  void checkValue(Item item){

        if(item.value>MAX_VALUE){
            item.value=MAX_VALUE;
        }

        if(item.value<MIN_VALUE){
            item.value=MIN_VALUE;
        }
    }

    /**
     * 变化抽象方法
     * @param item
     */
    protected abstract void changeCurrent(Item item);
}